//fcntl.h : 
//
//供 open/fcntl 函数使用的可选 oflag 标志位参数：
//
//以下三个标志位互斥，只能选其中之一，不能进行按位或运算
//
// O_RDONLY	只读打开
// O_WRONLY	只写打开
// O_RDWR	读写打开
//
// 仅 open 函数使用 :
// O_CREAT		若此文件不存在则创建它，需要使用第三个参数 mode（4.5节）
// O_EXCL		测试文件是否存在。若不存在则创建此文件, 若同时指定 O_CREAT 且文件已存在则出错（3.11节）
// O_TRUNC		若此文件存在，且为“只写”或“读写”打开，将其长度截断为0
// O_NOCTTY		若 pathname 指的是终端设备，则不将该设备分配作为此进程的控制终端（9.6节）

// O_APPEND		每次写时都追加到文件尾端（3.11节）
// O_NONBLOCK	若 pathname 指的是一个 FIFO、一个块特殊文件或一个字符特殊文件
//				则此选项为文件的本次打开操作，和后续的 I/O 操作设置为非阻塞模式（14.2节）

//同步输入/输出选项
// O_DSYNC		使每次 write 等待物理 I/O 操作完成，但是如果写操作并不影响读取刚写入的数据，则不等待文件属性被更新
// O_RSYNC		使每一个以文件描述符作为参数的 read 操作等待，直至任何对文件同一部分进行的未完成的写操作都完成
// O_SYNC		使每次 write 都等到物理 I/O 操作完成，包括由 write 操作引起的文件属性更新所需要的 I/O（3.14节）

// 供 fcntl 函数使用的 cmd 命令 : 
// F_DUPFD						复制一个现有的描述符
// F_GETFD/F_SETFD				获得/设置文件描述符标记
// F_GETFL/F_SETFL				获得/设置文件状态标志
// F_GETOWN/F_SETOWN			获得/设置异步 I/O 所有权
// F_GETLK/F_SETLK/F_SETLKW		获得/设置记录锁(14.3节)
